package conjuntos;

import java.util.HashSet;
import java.util.Set;

public class Palabra {

	private String palabra;

	/**
	 * @param palabra
	 *            Crea una Palabra
	 */
	public Palabra(String palabra) {
		this.setPalabra(palabra);
	}

	/**
	 * @return Obtiene la palabra ingresada
	 */
	public String getPalabra() {
		return palabra;
	}

	/**
	 * @param palabra
	 *            Asigna una palabra
	 */
	public void setPalabra(String palabra) {
		this.palabra = palabra;
	}

	/**
	 * @return Devuelve Conjunto de Letras
	 */
	public Set<Character> buscarLetras() {
		Set<Character> letras = new HashSet<Character>();

		for (int i = 0; i < this.palabra.length(); i++) {
			letras.add(this.palabra.charAt(i));
		}
		return letras;
	}

	/**
	 * @return Devuelve Conjunto de Vocales
	 */
	public Set<Character> buscarVocales() {
		Set<Character> vocales = buscarLetras();

		vocales.retainAll(getVocales());

		return vocales;
	}

	/**
	 * @return Devuelve Conjunto de Consonantes
	 */
	public Set<Character> buscarConsonantes() {
		Set<Character> consonantes = buscarLetras();

		consonantes.removeAll(getVocales());
		return consonantes;
	}

	/**
	 * @return Helper que devuelve conjunto Vocales por defecto
	 */
	private Set<Character> getVocales() {
		Set<Character> vocalesDefault = new HashSet<Character>();
		String vocalesCadena = "aeiou";

		for (int i = 0; i < vocalesCadena.length(); i++) {
			vocalesDefault.add(vocalesCadena.charAt(i));
		}

		return vocalesDefault;

	}

}
